FUZZER_NAME := 'fuzzer_custom_executor'
PROJECT_DIR := absolute_path(".")
PROFILE := 'release'
PROFILE_DIR := 'release'
CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target")
FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME


alias build := fuzzer

fuzzer:
	cargo build --profile={{PROFILE}}

run: fuzzer
	{{FUZZER}}

[linux]
[macos]
test: fuzzer
	#!/bin/bash
	timeout 30s {{FUZZER}} | tee fuzz_stdout.log || true
	if grep -qa "objectives: 1" fuzz_stdout.log; then
	    echo "Fuzzer is working"
	else
	    echo "Fuzzer does not generate any testcases or any crashes"
	    exit 1
	fi

[windows]
test: fuzzer
	echo "Unsupported on this platform"

clean:
	cargo clean
